package cn.maszy.service.impl.systemsetting;

import java.util.Date;
import java.util.List;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.maszy.common.Pager;
import cn.maszy.common.SessionFactory;
import cn.maszy.dao.systemsetting.B_T_Ufp_CategoryMapper;
import cn.maszy.dao.systemsetting.B_T_Ufp_ProjectMapper;
import cn.maszy.model.systemsetting.B_T_Ufp_Category;
import cn.maszy.model.systemsetting.B_T_Ufp_CategoryExample;
import cn.maszy.model.systemsetting.B_T_Ufp_Project;
import cn.maszy.model.systemsetting.B_T_Ufp_ProjectExample;
import cn.maszy.model.systemsetting.B_T_Ufp_CategoryExample.Criteria;
import cn.maszy.service.systemsetting.B_T_Ufp_CategoryService;
@Service
public class B_T_Ufp_CategoryServiceImpl implements B_T_Ufp_CategoryService {
	@Autowired
	private B_T_Ufp_CategoryMapper b_T_Ufp_CategoryMapper;
	@Autowired
	private B_T_Ufp_ProjectMapper b_T_Ufp_ProjectMapper;
	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#update(cn.maszy.model.investment.B_T_Ufp_Category, cn.maszy.model.investment.B_T_Ufp_AdminExample)
	 */
	public int update(B_T_Ufp_Category b_T_Ufp_Category) {
		// TODO Auto-generated method stub
		 if(b_T_Ufp_Category.getUuid()==null||"".equals(b_T_Ufp_Category.getUuid())){
			 b_T_Ufp_Category.setUuid(UUID.randomUUID().toString());
			 if(b_T_Ufp_Category.getPid()==null||"".equals(b_T_Ufp_Category.getPid()))
			 {
				 b_T_Ufp_Category.setPid("0");
			 }else
			 {
				 b_T_Ufp_Category.setPid(b_T_Ufp_Category.getPid());
			 }
			 b_T_Ufp_Category.setIsDelete(0);
			 b_T_Ufp_Category.setCreateTime(new Date());
			 b_T_Ufp_Category.setCreateUser(SessionFactory.getSessionUserRealNam());
			 return b_T_Ufp_CategoryMapper.insert(b_T_Ufp_Category);
		 }else{
			 //修改字表的数据
			 String name = b_T_Ufp_Category.getCategoryName();
			 B_T_Ufp_ProjectExample example=new B_T_Ufp_ProjectExample();
			 example.createCriteria().andCategoryUuidEqualTo(b_T_Ufp_Category.getUuid());
			 B_T_Ufp_Project record =new B_T_Ufp_Project();
			 record.setCategoryName(name);
			 record.setCategoryStatus(b_T_Ufp_Category.getCategoryStatus());
			 record.setStatus(b_T_Ufp_Category.getStatus());
			 b_T_Ufp_ProjectMapper.updateByExampleSelective(record, example);
			 
			 b_T_Ufp_Category.setUpdateTime(new Date());
			 b_T_Ufp_Category.setUpdateUser(SessionFactory.getSessionUserRealNam());
			 return b_T_Ufp_CategoryMapper.updateByPrimaryKeySelective(b_T_Ufp_Category);
		 }
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#selectOne(java.lang.String)
	 */
	public B_T_Ufp_Category selectOne(String uuid) {
		// TODO Auto-generated method stub
		B_T_Ufp_Category record=b_T_Ufp_CategoryMapper.selectByPrimaryKey(uuid);
		return record;
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#delete(java.lang.String)
	 */
	public int delete(String checkIds) {
		// TODO Auto-generated method stub
		if(checkIds==null){
			return 0;
		}
		for (String id : checkIds.split(", ")) {
			//删除前的判断
			B_T_Ufp_CategoryExample example1=new B_T_Ufp_CategoryExample();
			Criteria criteria = example1.createCriteria();
			criteria.andPidEqualTo(id);
			example1.or(criteria);
			// 取得总的记录条数
			List<B_T_Ufp_Category>  list=b_T_Ufp_CategoryMapper.selectByExample(example1);
			if(list.size()>0)
			{
				return 0;
			}
			//删除前判断
			B_T_Ufp_ProjectExample example2=new B_T_Ufp_ProjectExample();
			cn.maszy.model.systemsetting.B_T_Ufp_ProjectExample.Criteria criteria2 = example2.createCriteria();
			criteria2.andCategoryUuidEqualTo(id);
			example2.or(criteria2);
			//取得总记录数
			List<B_T_Ufp_Project> list2 = b_T_Ufp_ProjectMapper.selectByExample(example2);
			if(list2.size()>0)
			{
				return 0;
			}
			//删除
			b_T_Ufp_CategoryMapper.deleteByPrimaryKey(id);
			B_T_Ufp_ProjectExample example=new B_T_Ufp_ProjectExample();
			example.createCriteria().andCategoryUuidEqualTo(id);
			b_T_Ufp_ProjectMapper.deleteByExample(example);
		}
		return 1;
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#count(cn.maszy.model.investment.B_T_Ufp_AdminExample)
	 */
	public int count(B_T_Ufp_CategoryExample example,B_T_Ufp_CategoryMapper b_T_Ufp_CategoryMapper) {
		// TODO Auto-generated method stub
		return b_T_Ufp_CategoryMapper.countByExample(example);
	}

	/* (non-Javadoc)
	 * @see cn.maszy.service.investment.B_T_Ufp_AdminService#selectList(cn.maszy.model.investment.B_T_Ufp_Category)
	 */
	public Pager<B_T_Ufp_Category> selectList(B_T_Ufp_Category b_T_Ufp_Category,Pager<B_T_Ufp_Category> pager) {
		// TODO Auto-generated method stub
		// 添加查询条件
		B_T_Ufp_CategoryExample example=new B_T_Ufp_CategoryExample();
		Criteria criteria = example.createCriteria();
		if(b_T_Ufp_Category!=null){
			if(b_T_Ufp_Category.getCategoryStatus() !=null&&!"".equals(b_T_Ufp_Category.getCategoryStatus())){
				criteria.andCategoryStatusEqualTo(b_T_Ufp_Category.getCategoryStatus());
			}
//			if(b_T_Ufp_Category.getLoginName()!=null&&!"".equals(b_T_Ufp_Category.getLoginName())){
//				criteria.andLoginNameLike("%"+b_T_Ufp_Category.getLoginName()+"%");
//			}
//			if(b_T_Ufp_Category.getRealName()!=null&&!"".equals(b_T_Ufp_Category.getRealName())){
//				criteria.andRealNameLike("%"+b_T_Ufp_Category.getRealName()+"%");
//			}
		}else{
			criteria.andUuidIsNotNull();
		}
		example.or(criteria);
		int totalCount=new B_T_Ufp_CategoryServiceImpl().count(example,b_T_Ufp_CategoryMapper);
//		pager.setTotalRecords(totalCount);
//		example.setLimitStart(pager.getStartRecord());
//		example.setLimitEnd(pager.getPageSize());
		example.setOrderByClause(pager.getOrderField()+" "+pager.getOrderDirection());
		// 取得总的记录条数
		List<B_T_Ufp_Category>  list=b_T_Ufp_CategoryMapper.selectByExample(example);
		pager.setPageRecords(list);
		return pager;
	}
	public List<B_T_Ufp_Category> select(B_T_Ufp_Category b_T_Ufp_Category)
	{
		B_T_Ufp_CategoryExample example=new B_T_Ufp_CategoryExample();
		Criteria criteria = example.createCriteria();
		if(b_T_Ufp_Category!=null){
			if(b_T_Ufp_Category.getCategoryStatus() !=null&&!"".equals(b_T_Ufp_Category.getCategoryStatus())){
				criteria.andCategoryStatusEqualTo(b_T_Ufp_Category.getCategoryStatus());
			}
			if(b_T_Ufp_Category.getPid() !=null&&!"".equals(b_T_Ufp_Category.getPid())){
				criteria.andPidNotEqualTo(b_T_Ufp_Category.getPid());
			}
			if(b_T_Ufp_Category.getCategoryName() !=null&&!"".equals(b_T_Ufp_Category.getCategoryName())){
				criteria.andCategoryNameEqualTo(b_T_Ufp_Category.getCategoryName());
			}
		}else
		{
			criteria.andUuidIsNotNull();
		}
		example.or(criteria);
		example.setOrderByClause("create_time");
		// 取得总的记录条数
		List<B_T_Ufp_Category>  list=b_T_Ufp_CategoryMapper.selectByExample(example);
		return list;
	}
	//用于页面下拉列表
	public List<B_T_Ufp_Category> selectchange(B_T_Ufp_Category b_T_Ufp_Category)
	{
		B_T_Ufp_CategoryExample example=new B_T_Ufp_CategoryExample();
		Criteria criteria = example.createCriteria();
		if(b_T_Ufp_Category!=null){
			if(b_T_Ufp_Category.getCategoryStatus() !=null&&!"".equals(b_T_Ufp_Category.getCategoryStatus())){
				criteria.andCategoryStatusEqualTo(b_T_Ufp_Category.getCategoryStatus());
			}
		}else
		{
			criteria.andUuidIsNotNull();
		}
		criteria.andPidEqualTo("0");
		example.or(criteria);
		// 取得总的记录条数
		List<B_T_Ufp_Category>  list=b_T_Ufp_CategoryMapper.selectByExample(example);
//		B_T_Ufp_Category bb = new B_T_Ufp_Category();
//		bb.setUuid("0");
//		bb.setCategoryName("设为大类");
//		list.add(bb);
		return list;
	}
}
